מדעי המחשב פתרון בחינת הבגרות פרק ראשון

Similar documents
עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

מדעי המחשב ב' פתרון בחינת הבגרות. שאלה 1 i - false

בחינת בגרות, תשע"ז מס' שאלון: מדעי המחשב שאלה 1. Java. blog.csit.org.il הילה קדמן

מדעי המחשב מעבר על הרשימה למציאת המקום המתאים לאיבר. החזרת ה- value של ההפניה למינימום. הנחה: הרשימה לא ריקה.

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

מבוא לתכנות ב- JAVA תרגול 7

בוחן בתכנות בשפת C בצלחה

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

7 קרפ תויגול,תויטמתירא תודוקפ הזזהו

חומר עזר בשימוש: הכל )ספרים ומחברות( קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( 2 שאלות )בחירה מ - 4( סה"כ 50 נקודות

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

יחידה ארגון המחשב ושפת סף: שאלות תרגול

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

מ ש ר ד ה ח י נ ו ך ה פ ד ג ו ג י ת א ש כ ו ל מ ד ע י ם על ה ו ר א ת ה מ ת מ ט י ק ה מחוון למבחן מפמ"ר לכיתה ט', רמה מצומצמת , תשע"ב טור א'

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות

Practical Session No. 13 Amortized Analysis, Union/Find

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

פולימורפיזם. blog.csit.org.il מדעי המחשב

אנגלית (MODULE E) בהצלחה!

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx

THINKING ABOUT REST THE ORIGIN OF SHABBOS

2 יחידות לימוד הוראות לנבחן רשו ם "טיוטה" בראש כל עמוד טיוטה. רישום טיוטות כלשהן על דפים שמחוץ למחברת הבחינה עלול לגרום לפסילת הבחינה!

Depth-First Search DFS

למבחן ביסודות מדעי המחשב דוגמא

תרגול 8. Hash Tables

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

A R E Y O U R E A L L Y A W A K E?

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

מבחן מועד ב' אנא קיראו היטב את ההראות שלהלן:

מבוא למחשב בשפת פייתון

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

פרק מיון וחיפוש - לשם מה? הגדרה

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

תרגול 11 תור עץ חיפוש בינארי

ASP.Net MVC + Entity Framework Code First.

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

יסודות מבני נתונים. תרגול :9 ערימה - Heap

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

מספר ת"ז: יש לסמן את התשובה הטובה ביותר בתשובון. לא יינתן ניקוד על סימון תשובה בטופס הבחינה או במחברת הבחינה.

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

במבוא מורחב למדעי המחשב בשפת פייתון

מבחן באנגלית בהצלחה הצלחה!!! שם פרטי: שם משפחה: מס' תעודת זהות: תאריך: שם מרכז מנהל מרכז השכלה: תאריך בדיקת המבחן: כל הזכויות שמורות למשרד החינוך

מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית (MODULE C) מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי قاموس إنجليزي - إنجليزي - عربي

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן )מילון אנגלי-ערבי / ערבי-אנגלי )

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

שאלון ד' הוראות לנבחן

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

םימתירוגלאו םינותנ ינבמ המירעו תינס, חמ רות רקצול הנילופ

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

שאלון ו' הוראות לנבחן

State Pattern מימוש מכונת מצבים (FSM) מבוא בעיה תמיכה ועדכונים עדכון מס' 48 מאי 2002

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

זה. Nir Adar

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

שאלון ו' הוראות לנבחן

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

מדעי המחשב ב' בחינת מתכונת 2

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

הנדסה-לאחור: שרשרת העלייה של Windows 7 חלק שני - VBR

הצעת תשובות לשאלות בחינת הבגרות אנגלית

תרגול נושאי התרגול כעץ חיפוש בינארי : העץ הימני. Inorder(x) 1) if x NULL 2) then Inorder(left(x)) 3) print key[x] 4) Inorder(right(x))

מבני נתונים תרגיל 5 שאלות לגבי העבודה יש להעלות בפורום של הקורס או בשעות הקבלה של המרצה או המתרגל האחראיים על העבודה.

מבוא למחשב בשפת Matlab

פרק עצמים א. טיפוסים חדשים ב. מצב של עצם

Expressions (ex 8) Wild World (ex 7) Cars (ex 9)

הוראות לנבחן לפי ההוראות בקבוצת השאלות במסלול זה. אחד מארבעת המסלולים: מערכות מחשב ואסמבלר, מבוא לחקר ביצועים, מודלים חישוביים, תכנות מונחה עצמים.

- 4.3 נמצא ברשימה? הוראת מדעי המחשב, אוניברסיטת תל-אביב

פרק קל לראות מתיאור זה שהערך הנשלף מהמחסנית הוא תמיד הערך האחרון שנדחף אליה. הפרוטוקול המגדיר את דרך הגישה לערכים נקרא LIFO ראשי התיבות של המילים:

מושגים בסיסיים תלמידים והורים יקרים,

מבני נתונים תרגיל 4 פתרון

פרק מחלקות ממשק המחלקה צריך גם לדעת להגדיר בתוכניתו מחלקות לפי הצורך. בפרק זה נלמד להגדיר מחלקה ולממשה על סמך ממשק נתון.

פרק היררכי

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

SEEDS OF GREATNESS MINING THROUGH THE STORY OF MOSHE S CHILDHOOD

לאחר מכן נוכל לכתוב תוכניות שכוללות אלגוריתמים

(MODULE E) ב ה צ ל ח ה!

אוניברסיטת בן גוריון בנגב

הטכנולוגיה בחינוך ד ר קובי גל אוניברסיטת בן גוריון בנגב

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים מילון דו לשוני או מילון אוקספורד אנגלי-אנגלי-עברי הוראות מיוחדות:

עצים ועצי חיפוש חומר קריאה לשיעור זה. Chapter 5.5 Trees (91 97) Chapter 13 Binary Search Trees ( )

תאריך הבחינה: מבוא למדעי המחשב ד "ר פז כרמי פרופ' מייק קודיש ד "ר חן קיסר ד "ר צחי רוזן שם הקורס: מבוא למדעי המחשב מספר הקורס:

The Art of Rebuke. Source #1: Story of Kamtzah and Bar Kamtzah Talmud Gittin 55b-56a

הוראות לנבחן סף ובהם שמונה שאלות. עליך לענות על שש שאלות, על פי ההנחיות בכל פרק. גמר לבתי ספר לטכנאים ולהנדסאים

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link

Transcription:

שאלה פתרון בחינת הבגרות פרק ראשון א. ערך מוחזר x y x>y מצב התור [, 4, 8, 7, 20, ] 4 F 6 + 3 = 9 [4, 8, 7, 20,, 4] 4 8 F 2 + 4 = 6 [8, 7, 20,, 4, 8] 8 7 F 3 + 9 = 2 [7, 20,, 4, 8, 7] 7 20 F 0 + 3 = 3 [20,, 4, 8, 7, 20] 20 T 0 )6( התור בסיום: 20] [, 4, 8, 7, )( ערך מוחזר: )ללא שינוי( (i) הפעולה מחשבת ומחזירה את סכום ההפרשים שבין כל שני איברים סמוכים בתור. מכיוון שהתור ממויין, יוצא שהערך המוחזר הינו ההפרש שבין האיבר הראשון והאיבר האחרון בתור. (ii) בסיום יישאר התור ללא שינוי. בעקבות ההחלפה יתקבל זימון אינסופי שייעצר רק כשמחסנית הזימונים "תעלה על גדותיה" ותתרחש גלישה: שגיאה מסוג Stack Overflow )6( )3( ב. 0 2 3 4 5 6 ar 2 29 66 6 27 60 34 7 משפט הזימון: 5) go(ar, 2, יחזיר: x y x==y ar[x] ar[y] ar[x]%0< ar[y]%0 משפט זימון 2 5 F 66 60 F go (ar, 2, 4) 2 4 F 66 27 T go(ar, 3, 4) 3 4 F 6 27 T go(ar, 4, 4) 4 4 T 27 )(.y ו- x משפט הזימון: ar.length-) go(ar, 0, יחזיר: 9 הפעולה go מחזירה את ספרת האחדות הגדולה ביותר בתאי המערך, בין המקומות )6( )3(

6 } תרגיל דרך I 2 האם-מסלול-עולה? (tr) { פעולה המחזירה אמת אם קיים בעץ מסלול המתחיל בשורש העץ ומסתיים באחד העלים, וערך הצמתים ממוין בסדר עולה, ושקר אחרת. הנחה: העץ לא לא ריק שערכיו מספרים שלמים השונים זה מזה. אם )עלה? )(tr) החזר אמת // אם )יש ל- tr בן שמאלי שערכו גדול מערך הצומת של ) tr left אמת left שקר אחרת אם )יש ל- tr בן ימני שערכו גדול מערך הצומת של )tr right אמת right שקר אחרת אם )אחד הצדדים תקין( החזר left right החזר שקר וגם וגם // האם-מסלול-עולה? )בן שמאלי של )tr האם-מסלול-עולה? )בן ימני של )tr בדיקת המסלול הסתיימה בהצלחה או אף אחד מהבנים לא נמצא במסלול ממוין יש לממש גם את הפעולה עלה? (tr)

3 דרך II פתרון של: אביטל Evi גרינולד תנאי קדם: תנאי בתר: תנאי קדם: תנאי בתר: הפעולה מקבלת עץ בינרי של מספרים שלמים טבעיים ( שלמים גדולים מ ) שונים זה מזה הפעולה מחזירה 'אמת' אם קיים מסלול עולה משורש עד עלה, שקר אחרת. public static boolean uppath(binnode<integer> tr) { if (tr == null) return false; if (tr.getleft() == tr.getright()) return true; } return uppath (tr.getleft(), tr.getvalue()) uppath (tr.getright(), tr.getvalue()); הפעולה מקבלת עץ בינרי של מספרים שלמים טבעיים ( שלמים גדולים מ ) שונים זה מזה ומספר טבעי x הפעולה מחזירה 'אמת' אם קיים מסלול עולה משורש העץ עד עלה שערך השרש שלו גדול מ, x שקר אחרת. private static boolean uppath(binnode<integer> tr, int x) { if (tr == null) return false; if (tr.getvalue() <= x) return false; if (! tr.hasleft() &&! tr.hasright()) return true; } return uppath (tr.getleft(), tr.getvalue()) uppath(tr.getright(), tr.getvalue());

4 Java שאלה 3 א. ב. סיבוכיות זמן הריצה היא.O(n) סה"כ n צעדים טבעות מהמוט למוטות העזר : ()O n * נימוק: העברת n סה"כ n צעדים טבעות משני מוטות העזר: ()O n * החזרת n O(n) = 2n סה"כ: f (n)

5 C# שאלה 3 א. ב. סיבוכיות זמן הריצה היא.O(n) סה"כ n צעדים טבעות מהמוט למוטות העזר : ()O n * נימוק: העברת n סה"כ n צעדים טבעות משני מוטות העזר: ()O n * החזרת n O(n) = 2n סה"כ: f (n)

2 שאלה 4 Java: C#: ב. )( טבלת מעקב: left value right value sum I left right II left.getright right III left.val + right.val == sum I && II && III left == right left.get Right == sum ערך מוחזר 3 8 2 T T T true 0 T T T true 27 27 F false true false ניתן להחליף את התנאי. נימוק: הפעולה מחזירה אמת אם סכום כל זוגות איברים הנמצאים במרחק שווה מקצות הרשימה שווים )סימטרי-סכומים(. הלולאה עוצרת כאשר הגיעה לאמצע הרשימה או כאשר נמצא זוג איברים שסכומם שונה. עבור רשימה באורך אי-זוגי, מוחזר אמת אם האיבר האמצעי שווה לסכום זה, אחרת מוחזר שקר. בכל מקרה אחר מוחזר אמת אם סכום שני האיברים במקומות left ו- right שווה ל-,sum אחרת מוחזר שקר. ולכן, ניתן להחליף את הקטע המסומן בהוראה: "החזר: סכום האיברים במקומות left ו- right שווה ל- "sum )2(

7 פרק שלישי מערכות מחשב ואסמבלר הפתרון לפרק זה נכתב ע"י: רונית )מרציאנו( גל-אור תרגיל 5 ch 00h 00h 00h 00h 00h 00h 00h 00h 00h cx cl 04h 04h 04h 03h 04h 03h 02h 04h 02h 0h 04h 0h 00h ah 45h 04h 00h 26h 02h 00h 32h 03h 00h 82h 08h 00h ax al 45h 05h 4h 26h 06h 0ch 32h 02h 06h 82h 02h 0h si 0000h 000h 0002h 0003h 0004h א. vec db 45h,26h,32h,82h vec2 db 0,0,0,0 vec db 45h,26h,32h,82h vec2 db 4h,0ch,2h,0h sp h 0ffh 00h 00h 00h 00h sp spspsp 0feh 04h 03h 06h 0h 0fdh 0fch 0fbh 0fah 0f0h 0f9h תמונת הזיכרון לפני אחרי הקטע מכפיל את ספרת העשרות באחדות ואת התוצאה בבסיס 2 שם במערך השני בתאים מקבילים. אם נחליף את את הפקודה: mul ah בפקודה imul ah לא יהיה שינוי בתוצאה, אבל, גם ה cf וגם ב ofידלקו, למשל, אם מכפילים בתא במערך vec היה הערך 0ffh והיינו מבצעים כפל של, 0fh * 0fh התוצאה לא נכנסת בבית במספרים מכוונים ולכן נדלקים cf כי התוצאה לא נכנסת בייצוג ו ofכי הראה גלישה במספרים מכוונים. התוצאה שנראה במערך זהה, מכיוון ש 0e(h) (0)225 אמנם נכנס בבית אבלף רק במספרים לא מכוונים. )( )6( )3(

8 ב. בצע טבלת מעקב מה מבצע הקטע? mov ax,4h mov bl,0ah div bl mov cl,4 rol al,cl or al,ah ax bx cx ah al bh bl ch cl mov ax,4h 00h 4h mov bl,0ah 0ah div bl 00h 02h mov cl,4 04h rol al,cl 20h or al,ah 20h הקטע מחלק את הערך הנמצא ב al ב ויוצר מספר חדש המורכב מהתוצאה והשארית של המספר הנמצא ב ax אם למשל ב ax היה בהתחלה (6)65 = (0)0 התוצאה בסיום הקטע הייתה : al=0ah

arr dw 4,2,56,32,2,33,47,36 len= ($-arr)/2 mov ax, data mov ds, ax mov es, ax תרגיל 6 א. התוכנית הראשית ; mov אורך המערך ; cx,len xor אינדקס במערך ; si,si again: mov תא מתאים במערך ; ax,arr[si] הערך במערך מועבר דרך המחסנית לפעולה הבודקת חלוקה ב ; 2 ax push קריאה לפעולה ; divbysix call בדיקה אם המספר מתחלק ב ; 2 al, cmp je אם לא ממשיכים למספר הבא במערך ; movon inc dl אם כן מקדמים את המונה ב ; movon: inc si מערך מילים לכן מקדמים ב ; 6 inc si loop again הוספת 3 הקסה לערך באוגר add dl,30h ; dl כדי שיודפס התו האסקי עם ערך המספר באוגר ; פסיקה להדפסת התו האסקי באוגר mov ah, 02h ;dl int 2h divbytwo proc mov bp,sp mov אם זוגי ; al,0 mov bx,[bp+2] shr חלוקה ב ; 6 bx, adc al,0 ; add carry mov השארית של החלוקה ב 6 מוחזרת דרך המחסנית ; [bp+2],bx ret endp divbytwo הפעולות

divbythree proc mov bp,sp mov ax,[bp+2] mov bl,3 div חלוקת השארית מהחלוקה ב 6 שהתקבלה כפרמטר ב ; 3 bl cmp ah,0 je מתחלק ב 3 ללא שארית ; ok mov al, jmp cont ok: mov al,0 cont: ret 2 endp divbythree divbysix proc mov bp,sp mov ax,[bp+2] push ax call divbytwo pop שארית החלוקה ב ; 6 bx cmp al, je notgood push דחיפת השארית חלוקה ב 6 למחסנית בשביל הבדיקה אם מתחלק ב bx 3 call divbythree notgood: ret 2 endp divbysix

tav db? ; count bits in tav count: mov al,tav mov cl,0 again: shr al, adc cl,0 cmp al,0 jne again continue: mov ch,cl ; keep cl ; check if Even number and ch, jz even ; not even rol tav,cl jmp sof even: ror tav,cl sof: nop תרגיל 7 א. dx יש ערך השונה מ, התשובה ב ax לא תהיה 4. mov ax,8 mov bx,2 div bx bx ולכן אם ב ב. )( לא נכון הפקודה div bx מבצעת חילוק של dx ax ב mov al,56 add al,200 jz stop inc al stop: )6( לא נכון בסים הקטע ah לא ידוע מה יש ב al=

6 0 0 02 02 33 03 30 04 )3( לא נכון בסים הקטע ax=3000h 4 05 06 07 תוכן כתובת array dw,2,3,4 mov bx,array add bx,2 mov ax,[bx] ax=3000h mov cx,3 mov ax, do: shl ax, loop do )4( נכון mov ax,00000b mov bx,000000b or al,3 ax גדול יותר )5( נכון מכיוון שהנתון בשאלה הוא בית והוא נכנס ל אוגר מילה, תמיד ההשוואה בינהם תהיה ש )2( נכון or אם ביט תמיד יתן לא משנה אם הביט המקביל הוא או

3 תרגיל 8 א. באוגר al מאוחסן המספר 6 ובאוגר bl מאוחסן המספר 5. יש לאחסן באוגר dx את סכום המספרים מ al עד bl כולל. קטע לא מבצע mov al,2 mov bl,5 mov dx,0 mov ah,0 mov cl,al sub cl,bl again: add dx,ax inc al loope again nop ch cx cl 02h 0fdh 0fch dx ax bx dh dl ah al bh bl 00h 00h 00h 02h 05h 00h 02h 03h ואז יוצא מהלולאה בגלל ה loope בנוסף שימו לב לערך של cx קטע 2 מבצע mov al,2 mov bl,5 xor dx,dx mov bh,0 again: add dx,bx dec bl cmp bl,al jge again nop

4 קטע 3 לא מבצע alן bl מתאפסים ישר בהתחלה mov al,2 mov bl,5 xor dx,dx xor ax,ax mov bx,0 again: add dx,ax add ax, cmp ax,bx jl again nop ב. לפניך קטע, בצע טבלת מעקב, והראה מצב אוגרי הדגלים לאחר כל אחת מהפקודות: mov ax,0c72ah mov bx,0a98dh shr ax, or al,7h not bh add ax,bx ax bx ah al bh bl zf sf of cf mov ax,0c72ah 0c7h 2ah mov bx,0a98dh 0a9h 8dh shr ax, 63h 95h or al,7h 97h Not bh 56h add ax,bx 0bah 24h 0

5 מבוא לחקר ביצועים שאלה 9 שאלה שאלה שאלה 2

2 תרגיל מודלים חישוביים הפתרון לפרק זה נכתב ע"י רחל לודמר. 3 L L L L 2 L2 L L2 { a k { b k k%2, k 0} k%2 0, k 0} א. כאשר: ב. a b a a b a b b b a a b b

7 4 תרגיל )( אינו נכון. אינה שייכת ל אינה שייכת ל. L המילה הקצרה בשפה היא. )6(. L 3 )במילה הריקה מספר ה ים שווה למספר ה ים והוא (.. L 4 המילה הקצרה ביותר היא. לא שייכת ל אם המילה הריקה לא נמצאת באף אחת מהשפות, היא גם לא נמצאת באיחודם. נכון., 0000 מכיל רצף. L. 0000 ומכאן המילה שייכת לחיתוכם., מספר האפסים זוגי. לכן L 4 0000 L 4 לא נכון. } מכילה 00 w, L { ולא חייבת להכיל רצף. 2 w לדוגמא המילה שייכת ל L 2 ואין בה את הרצף. )3(. w L 3 מספר ה שווה לא נכון. לדוגמא: המילה 00 למספר ה. )w מכילה את הרצף (, אבל w L, w )4( R( L 4 ) { {מספר ה 0 ב w איזוגי w )5( נכון., )R L 4 הן מילים שנקראות מימין לשמאל מהשפה L4 עם שמירה על תכונות הספירה כל המילים ב ) על מספר האפסים. )מספר ה נשאר אי זוגי(, ולכן הן זהות לאוסף המילים שנמצאים בשפה. L4 למשל: 000=w,,w2=R(w)= וגם מילה זו נמצאת בשפה המקורית ובהופכית שלה. כלומר. w 2 L 4 L3 L4 { w לא נכון. { מספר ה ים שונה ממספר ה ים, וגם מספר ה ים הוא אי זוגי )2( המילה.3 מספר ה ים הוא 3 והוא אי זוגי, ומספר ה הוא, ומתקיים. w 000 L L, 000 כי היא מכילה. L 2 אבל 3 4

8 שאלה 5 א. המילה הקצרה היא a 2 cb 4 ב. יש דרכים רבות לפתור את השוואת a 2n לעומת. b 3n אפשרות ראשונה ב a הראשון לדחוף 6 סימנים, וב a השני סימן אחד, או להיפך, ואז לשלוף על כל b. אפשרות שניה על כל זוג של a לדחוף סימן אחד, ועל כל שלישיה של b לשלוף אחד. אפשרות שלישית באחד מבני הזוג של a לדחוף 3 סימנים, ולשלוף על כל b.

שאלה 6

6 תרגיל 7 א. )( )6( )3( )4( תכנות מונחה עצמים Java הפעולה foo() אינה מוגדרת עבור עצם מהטיפוס Object שגיאת קומפילציה. הפעולה foo() אינה מוגדרת עבור עצם מהטיפוס B שגיאת קומפילציה. תקין הפעולה foo() אינה מוגדרת עבור עצם מהטיפוס Object שגיאת קומפילציה. )( ב.

6 Animal 8 תרגיל היררכיית המחלקות: א. Reptile IEggs Mammal Snake Turtle Platypus Lion ב.

66

63 תכנית הבדיקה )לא נדרש בבחינה(: הפלט:

64 תרגיל 9 Shopping s PhoneBill t PhoneBill u Shopping PhoneBill PhoneBill 2000 double total 052 double total 0222 double total 022 char curr d char curr s char curr d String name Baba String company ababetet String company mtaea abablag String list eaaos class Bill MyBills DOLLAR = 'd' MyBills 0 2 3 num SHEKEL = 's' baba bills 0 2 3 dollarrate = 4.0 PhoneBill Shopping PhoneBill double total 2000 double total 000 double total 800 char curr s char curr s char curr s String company ababetet String name Baba String company mtaea abablag String list eaaos Pay: 2000 Shekels to: TeleBaba Baba bought: Books. Pay: 000 Shekels Pay: 800 Shekels to: Galil Telecom 3800 פלט:

65 תרגיל 2 א. ב. 6 3 4 5 Object a A A B B B x(a) 2 x(a) 5 x(a) 2 x(a) 5 x(a) 0 x(b) x(b) -5-5 x(b) 4 40 A aa B x(a) x(b) 3 2 8

62 ג. )( )6( )3( )4( )5( )2(

67 תכנות מונחה עצמים #C הפתרון לפרק זה נכתב ע"י דיתה אוהב-ציון. תרגיל 2 א. א. 2 א. 3 א. 4 שגיאת הידור. העצם g מטיפוס המחלקה Object שלא מכילה ולא מכירה את הפעולה.Foo() )מחלקת אב לא מכירה פעולות שיש בבנים שלה( שגיאת הידור. העצם g מטיפוס המחלקה B שלא מכילה ולא מכירה את הפעולה.Foo() )מחלקת אב לא מכירה פעולות שיש בבנים שלה( תקין. שגיאת הידור. העצם g מטיפוס המחלקה Object שלא מכילה ולא מכירה את הפעולה.Foo() )מחלקת אב לא מכירה פעולות שיש בבנים שלה( ב. המחלקה Artist public class Artist { protected string name; protected double sal; protected static int num; public Artist(double sal, string name) { } public Artist(double sal, string name, string name){} משתנה סטטי על פי הקריאה Artist.num בנאי המתאים לקריאה עם שתי מחרוזות public double Price() { } הפעולה Value() מפעילה אותו public virtual double Calc(double d) { } על פי ההקריאה base.calc() מאחר וב- Singer היא,override הרי באב היא וירטואלית public virtual void Print() { } על פי ההקריאה base.print() מאחר וב Singer היא,override הרי באב היא וירטואלית } public int Train() { } מאחר ואין הגדרה לפעולה כמימוש מהממשק ב Singerהרי היא מוגדרת באב.

68 class Animal תרגיל 22 א. תרשים היררכית המחלקות: class Mammal interface IEggs class Reptile class Lion class Platpus class Snake class Turtle ב. המחלקות : מצורף תדפיס מלא של המחלקות הכולל את סעיפים ב,ג,ד, )יש פעולות בנאי מאחר והרצתי את הפרויקט(. ניתן להגדיר את המאפיין שם החיה, protected ואז אין צורך.Properties הרצה : בתכנית הראשית Lion l = new Lion("Simba"); Console.WriteLine(l); Platypus p = new Platypus("Pery",3); Console.WriteLine(p); Snake s = new Snake("Kaa", 20); Console.WriteLine(s); Turtle t = new Turtle("Batch", 50); Console.WriteLine(t); Animal, Mammal, Lion, Simba Animal, Mammal, Platypus, Pery Eggs=3 Animal, Reptile, Snake, Kaa Eggs=20 Animal, Reptile, Turtle, Batch Eggs=50 תוצאה :.ToString() הפולימורפיזם גורם לכך שכל עצם המפעיל רק המחלקה Animal מכילה את הפעולה הערות : של עצמו. ורק עצם המממש את ממשק הIEggs מציג את Details() אותה )יורש... ) מפעיל את נתוני הביצים וירטואלית מאחר ויש לדרוס אותה בכל המחלקות הפעולה Details() public virtual string במחלקה זוחלים מוגדר מאפיין למספר הביצים והיא מממשת את המימשק. במחלקה ברווזון מוגדר מאפיין לביצים והיא מממשת את הממשק.

6 interface IEggs { int GetNumOfEggs(); } public abstract class Animal { private string name; public Animal(string name) { this.name = name; } } public void Move() { Console.WriteLine("move"); } public void Turn() { Console.WriteLine("turn"); } public virtual string Details() { return "Animal, "; } public override string ToString() { string st = this.details() + " " + this.name; } if (this is IEggs) st += " Number of eggs: " + ((IEggs)this).GetNumOfEggs(); return st; public abstract class Mammal : Animal { public Mammal(string name) : base(name) { } public override string Details() { return base.details() + " Mammal,"; } } public abstract class Reptile : Animal,IEggs { private int numofeggs; } public Reptile(string name,int num ) : base(name) { this.numofeggs = num; } public int GetNumOfEggs() { return this.numofeggs; } public override string Details() { return base.details() + " Reptile, "; } public class Lion : Mammal { public Lion(string name) : base(name) { } } public override string Details() { return base.details() + " Lion, "; }

3 public class Platypus:Mammal,IEggs { private int numofeggs; } public Platypus(string name, int num) : base(name) { this.numofeggs = num; } public int GetNumOfEggs() { return this.numofeggs; } public override string Details() { return base.details() + " Platypus, "; } public class Snake : Reptile { public Snake(string name,int num) : base(name,num) { } } public override string Details() { return base.details() + " Snake, "; } public class Turtle : Reptile { public Turtle(string name,int num) : base(name,num) { } public override string Details() { return base.details() + " Turtle, "; } }

3 Pay: 2000 Shekel to: TeleBaba Baba bought: Books. Pay: 000 Shekel Pay: 800 Shekel to: Galil Telecom 3800 תרגיל 23 הפלט:

36 ההוראה השלישית ;a B =b שגויה. עצם מטיפוס מחלקה יורשת לא יכול להחזיק עצם ממחלקת האב. יש לבצע המרה (B)a; B b = A 24 aa = new B(3, 0); תרגיל א. ב. aa.sub(); תפעיל את הפעולה מ- B הדורסת לכן הערך ישתנה ל- 8 השורה ((A)ar[3]).TripleX(); תשנה את הערך 5- B.x= )הפעולות המופעלת הן הפעולות הדורסות של.( B השורה ((B)ar[4]).TenTimesX(); תשנה את הערך B.x= 40

33 ;xa=98 xb=99 תקין. הפלט : ג.. ((B)a2).TenTimesX(); a2.tentimesx(); לא תקין - שגיאת הידור. הפניה מטיפוס האב לא מכירה פעולות ממחלקות יורשות. תיקון אפשרי :.2 3. אותה שגיאה. ה- if לא משנה. ((B)a).TenTimesX(); שגיאת זמן ריצה. הפניה מטיפוס האב המחזיקה עצם מטיפוס אב לא מכירה את היורשים ממנה..4 ;xa=2 xb=97 5. תקין. הפלט :.6 תקין. הפלט :.2